package cn.hollis.nft.turbo.base.statemachine;

/**
 * 状态机接口，定义一系列状态和事件，目的是 控制状态的流转，即在某个状态下发生哪个事件是可以流转的、发生哪个事件是不可以流转的
 *
 * @author Hollis
 */
public interface StateMachine<STATE, EVENT> {

    /**
     * 状态机转移
     *
     * @param state 状态
     * @param event 事件
     * @return
     */
    public STATE transition(STATE state, EVENT event);
}

